package Day_0226.FactoryPattern;

/**
 * @author zxc
 * @date 2023/02/26 19:44
 **/
public class Spring_FactoryPattern {
    public static void main(String[] args) {
        /**
         * Spring开发中的工厂设计模式
         * ===》
         * 1.Spring IOC
         * （1）在Spring IOC容器创建bean的过程是.使用了工厂设计模式;
         * （2）Spring中，无论是通过xml配置/通过配置类还是注解进行创建bean，大部分都是通过简单工厂来进行创建的。
         * （3）当容器拿到了beanName和class类型后，动态地通过反射创建具体的某个对象，最后将创建的对象放到Map中。
         *
         * 2.Spring IOC要使用工厂设计模式创建Bean的原因
         * ===》
         * （1）在实际开发中，如果我们A对象调用B，B调用C，C调用D的话我们程序的耦合性就会变高。
         * （耦合大致分为类与类之间的依赖，方法与方法之间的依赖。）
         * （2）在很久以前的三层架构编程时，都是控制层调用业务层，业务层调用数据访问层时，
         *  都是是直接new对象，耦合性大大提升，代码重复量很高，对象满天飞
         * （3）为了避免这种情况，Spring使用工厂模式编程，写一个工厂，由工厂创建Bean，以后我们如果要对象就直接管工厂要就可以，剩下的事情不归我们管了。
         * （4）Spring IOC容器的工厂中有个静态的Map集合，是为了让工厂符合单例设计模式，
         *  即，每个对象只生产一次，生产出对象后就存入到Map集合中，保证了实例不会重复影响程序效率。
         *
         */
    }
}
